'use strict';
var Hogan = require('hogan')
var conf = {
    serverHost : ''
}
var _mm = {
    //网络请求
    request : function(param){
        var _this = this; //在ajax里面this指向有问题
        $.ajax({
            type     : param.method || 'get',
            url      : param.url    || '',
            dataType : param.type   || 'json',
            data     : param.data   ||　'',
            success  : function(res){
                //请求成功
                if(res.status === 0 ){
                    typeof param.success === 'function' && param.success(res.data,res.msg);  
                }
                //没有登陆状态，需要强制登陆
                else if(res.status === 10){
                        _this.doLogin()
                }
                //请求数据错误
                else if(res.status === 1){
                     typeof param.error === 'function' && param.error(res.msg);  
                }
            },
            error   :function(err){
                    typeof param.error === 'function' && param.error(err.statusText);  
            }
        })
    },
    // 获取服务器地址
    getServerUrl : function(path){
        return  conf.serverHost + path;
    },
    //获取url上的某个参数
    getUrlParam : function(name){
        //获取链接？后面对应的value                 ^&=>不是&就一直匹配
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
        var result = window.location.search.substr(1).match(reg);
        return result ? decodeURIComponent(result[2]) : null ;
    },
    //渲染html
    renderHtml : function(htmlTemplate,data){
        //npm install hogan --save
        var template = Hogan.compile(htmlTemplate),
            result   = template.render(data);
        return result;
    /*  eg:
            var html = '<div>{{data}}</div>'
            var data = {
                data : 1223
            }
            console.log(_mm.renderHtml(html,data)) */

    },
    //成功提示
    successTips : function(msg){
        alert(msg || '操作成功')
    },
    //错误提示
    errorTips : function(msg){
        alert(msg || '貌似有点毛病~')
    },
    //字符的验证 支持非空 手机 邮箱的判断
    validate : function(value,type){
        var value = $.trim(value);
        //非空验证
        if(type === 'require'){
            return !!value;  //两次取反
        }
        //手机验证
        if(type === 'phone'){
            return /^1\d{10}$/.test(value)
        }
        //邮箱验证
        if(type === 'email'){
            return /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/.test(value)
        }
    },
    //统一登陆处理
    doLogin : function(){
        window.location.href = './user-login.html?redirect='+ encodeURIComponent(window.location.href) ; 
    },
    //跳回主页
    goHome : function(){
        window.location.href = './index.html';
    }
}

module.exports = _mm;